<template>
  <el-row class="info">
    <!-- 左侧 -->
    <el-col :span="20">
      <span v-if="!isCompany">
        {{ data.name }}
      </span>
      <strong v-else>
        {{ data.name }}
      </strong>
    </el-col>
    <!-- 右侧 -->
    <el-col :span="4">
      <el-row type="flex">
        <el-col>{{ data.manager }}</el-col>
        <el-col>
          <!-- 操作下拉菜单 -->
          <el-dropdown>
            <!-- 一直看见的部分 -->
            <span class="dropdown-btn">操作 <i class="el-icon-arrow-down" /> </span>
            <!-- 下拉显示菜单部分 -->
            <template #dropdown>
              <el-dropdown-menu>
                <el-dropdown-item @click.native="showDialog">添加子部门</el-dropdown-item>
                <el-dropdown-item v-if="!isCompany" @click.native="showEditDialog">编辑部门</el-dropdown-item>
                <el-dropdown-item v-if="!isCompany" @click.native="delDept">删除部门</el-dropdown-item>
              </el-dropdown-menu>
            </template>
          </el-dropdown>
        </el-col>
      </el-row>
    </el-col>
  </el-row>
</template>

<script>
import { delDepartments } from '@/api/departments'
export default {
  props: { data: {
    type: Object,
    required: true
  },
  isCompany: {
    type: Boolean,
    default: false
  }

  },
  // 告诉父组件 发送事件
  methods: {
    // 新增弹窗
    showDialog() {
      console.log('树形内下拉被点击')
      // 这个组件是部门的渲染行组件, 有自己的部门数据
      // 可以再点击时往外传, 方便弹窗知道现在是哪个被点击了
      this.$emit('showDialog', this.data)
    },
    // 编辑弹窗
    showEditDialog() {
      this.$emit('showEditDialog', this.data)
    },
    // 删除
    async  delDept() {
      try {
        // 二次询问
        await this.$confirm('是否确认删除？')
        // 发请求
        console.log(this.data)
        await delDepartments(this.data.id)
        // 提醒用户
        this.$message.success('操作成功')
        // 更新数据(部门树形数据, 通知父页面列表更新)
        this.$emit('reload')
      } catch (error) {
        console.log(error)
      }
    }

  }

}
</script>

<style>
.info{width: 100%;}
</style>
